import Config from './config.js'

export default {
	methods: {
		sendRequest(params) {
			let method = params.type ? params.type  : 'POST', // 请求方式
				url = Config.baseUrl + params.url, // 请求路径
				data = {

					

				};
			// 参数
			if (params.data != undefined) Object.assign(data, params.data);
			let session_id = uni.getStorageSync('token') || ''
			if (params.async === false) {
				//同步
				return new Promise((resolve, reject) => {
					uni.request({
						url: url,
						method: method,
						data: data,
						header: {
							
							'content-type': 'application/json',
							 'token': uni.getStorageSync('token'), 
						},
						dataType: params.dataType || 'json',
						// #ifdef MP-WEIXIN || H5 
						responseType: params.responseType || 'text',
						// #endif
						// #ifdef  MP-TOUTIAO
						responseType: params.responseType || 'text',
						// #endif
						// #ifdef MP-BAIDU || APP-PLUS
						responseType: params.responseType || 'text',
						// #endif
						success: (res) => {
						
							// #ifdef MP-BAIDU
							switch (uni.getSystemInfoSync().platform) {
								case 'android':
									resolve(JSON.parse(JSON.parse(res.data)));
									break;
								case 'ios':
									resolve(JSON.parse(res.data));
									break;
								default:
									resolve(JSON.parse(res.data));
									break;
							}
							// #endif
							// #ifdef MP-WEIXIN || H5 
							resolve(res.data);
							// #endif
							// #ifdef  MP-ALIPAY 
							resolve(JSON.parse(res.data));
							// #endif

							// #ifdef  MP-QQ
							resolve(JSON.parse(res.data));
							// #endif
							// #ifdef APP-PLUS
							resolve(JSON.parse(res.data));
							// #endif
							// #ifdef MP-TOUTIAO
							resolve(res.data);
							// #endif
						},
						fail: (res) => {
							console.dir(res)
							
							reject(res);
						},
						complete: (res) => {
							console.log(res)
							if(res.code==401){
								// uni.showToast({
								// 	title:res.msg,
								// 	icon:'none'
								// })
							}
							reject(res);
						}
					});
				});
			} else {
				//异步
				uni.request({
					url: url,
					method: method,
					data: data,
					header: {
						'content-type': 'application/json',
						 'token': uni.getStorageSync('token'), 
					},
					dataType: params.dataType || 'json',
					// #ifdef MP-WEIXIN
					responseType: params.responseType || 'text',
					// #endif
					// #ifdef MP-BAIDU
					responseType: params.responseType || 'text',
					// #endif
					// #ifdef MP-TOUTIAO
					responseType: params.responseType || 'text',
					// #endif
					success: (res) => {

						// #ifdef MP-BAIDU 
						switch (uni.getSystemInfoSync().platform) {
							case 'android':
								typeof params.success == 'function' && params.success(JSON.parse(JSON.parse(res.data)));
								break;
							case 'ios':
								typeof params.success == 'function' && params.success(JSON.parse(res.data));
								break;
							default:
								typeof params.success == 'function' && params.success(JSON.parse(res.data));
								break;
						}
						// #endif
						// #ifdef MP-WEIXIN  || H5
						typeof params.success == 'function' && params.success(res.data);
						// #endif
						// #ifdef MP-ALIPAY

						typeof params.success == 'function' && params.success(JSON.parse(res.data));
						// #endif
						// #ifdef MP-QQ

						typeof params.success == 'function' && params.success(JSON.parse(res.data));
						// #endif
						// #ifdef APP-PLUS
						typeof params.success == 'function' && params.success(JSON.parse(res.data));
						// #endif
						// #ifdef MP-TOUTIAO
						typeof params.success == 'function' && params.success(res.data);
						// #endif

					},
					fail: (res) => {
						typeof params.fail == 'function' && params.fail(res);
					},
					complete: (res) => {
						if(res.data.code==401){
							uni.showToast({
								title:res.data.msg,
								icon:'none'
							})
							uni.removeStorageSync('token')
							uni.removeStorageSync('userinfo')
							uni.switchTab({
								url:'/pages/tabbar/my'
							})
						}
						typeof params.complete == 'function' && params.complete(res);
					}
				});
			}
		}
	}
}
